ss = 0
'''
字符串的转解码
内存  网络传输 内存
str==>bytes==>str

字符串的【编码】：
将str类型转换成bytes类型，需要使用到字符串的encode()方法
语法格式：
字符串.encode(编码格式)
str.encode(encoding='utf-8',errors='strict/ignore/replace')

字符串的【解码】
将bytes类型转换成str类型，需要使用到bytes类型的decode()方法
语法格式：
bytes.decode(encoding='utf-8',errors='strict/ignore/replace')

使用时编码和解码要保持格式一致 utf-8编，utf-8解
'''

s = '伟大的中国梦'
# 编码 str->bytes
scode = s.encode(errors='replace')  # 默认是utf-8 因为utf-8中文占3个字节,英文占1个字节
print(scode)

scode_gkb = s.encode('gbk', errors='replace')  # gbk中文占2个字节
print(scode_gkb)

# 编码中的出错问题
s2 = '耶✌🏻'
scode_gkb = s2.encode('gbk', errors='ignore')  # 忽略错误,略过报错的字符
print(scode_gkb)

# scode_gkb = s2.encode('gbk', errors='strict')  # 严格模式，报错中断执行
# print(scode_gkb)

scode_gkb = s2.encode('gbk', errors='replace')  # 替换模式，报错会用?替换字符
print(scode_gkb)

# 解码过程 bytes->str 要保证编码和解码的格式类型一致才行
sdecode = scode.decode(errors='replace')
print(sdecode)

sdecode = scode_gkb.decode('gbk', errors='replace')
print(sdecode)
